home *** CD-ROM | disk | FTP | other *** search
/ Collection of Internet / Collection of Internet.iso / infosrvr / dev / www_talk.930 / 000479_guido@cwi.nl _Fri Dec 11 11:34:37 1992.msg < prev    next >
Internet Message Format  |  1994-01-24  |  5KB

  1. Return-Path: <guido@cwi.nl>
  2. Received: from dxmint.cern.ch by  nxoc01.cern.ch  (NeXT-1.0 (From Sendmail 5.52)/NeXT-2.0)
  3.     id AA10484; Fri, 11 Dec 92 11:34:37 MET
  4. Received: by dxmint.cern.ch (5.65/DEC-Ultrix/4.3)
  5.     id AA07105; Fri, 11 Dec 1992 11:47:58 +0100
  6. Received: from voorn.cwi.nl by charon.cwi.nl with SMTP
  7.     id AA17698 (5.65b/3.2/CWI-Amsterdam); Fri, 11 Dec 1992 11:47:55 +0100
  8. Received: by voorn.cwi.nl with SMTP
  9.     id AA29250 (5.65b/3.2/CWI-Amsterdam); Fri, 11 Dec 1992 11:47:54 +0100
  10. Message-Id: <9212111047.AA29250.guido@voorn.cwi.nl>
  11. To: Dan Connolly <connolly@pixel.convex.com>
  12. Cc: www-talk@nxoc01.cern.ch
  13. Subject: Re: Gopher+ Considered Harmful 
  14. In-Reply-To: Your message of "Thu, 10 Dec 1992 12:05:02 MET."
  15.              <9212101805.AA05022@pixel.convex.com> 
  16. From: Guido.van.Rossum@cwi.nl
  17. X-Organization: CWI, Kruislaan 413, 1098 SJ Amsterdam, The Netherlands
  18. X-Phone: +31 20 5924127 (work), +31 20 6225521 (home), +31 20 5924199 (fax)
  19. Date: Fri, 11 Dec 1992 11:47:53 +0100
  20. Sender: Guido.van.Rossum@cwi.nl
  21.  
  22. I wrote:
  23. >>As I see it, there are two possible ways of using MIME in HTTP+.  We
  24. >>can either support MIME as the *only* data format (implementing any
  25. >>extensions we need as new MIME content types or subtypes or additional
  26. >>headers), or we we support MIME as one of the possible data formats.
  27.  
  28. Dan's reply:
  29. >A terminology note here: there is no one "MIME data format." There's
  30. >the ubiquitous message/rfc822 format that you can stick anything
  31. >inside using MIME techniques. But the basic unit of information
  32. >in the MIME spec is an _entity_ -- just an arbitrary stream of bytes.
  33.  
  34. OK, when I said MIME data format I meant MIME message format, and was
  35. referring to the outer level only (and note that MIME *implies*
  36. RFC822).  I certainly did not refer to a particular content-type, not
  37. even to message/rfc822.  The only thing that isn't well-specified when
  38. one talks about "a file in MIME format" is whether line breaks are
  39. given as CRLF or as LF (or as something else).
  40.  
  41. >The question is, when you're sending an entity from one
  42. >place to another, how do you know where the end is?
  43.  
  44. This is a matter for the transport agent, not for MIME -- by the time
  45. you call in the MIME agent to handle the data you must *already* know
  46. where the end is.  For entities contained in other entities (e.g. the
  47. content-type family multipart/*) there is a way defined in MIME to
  48. find the end of the inner entities, but this is not true for the
  49. outermost entity.
  50.  
  51. >From the MIME point of view, an NNTP client and server have
  52. >an implicit agreement that the entity going across the
  53. >wire has a content-transfer-encoding of 7bit.
  54. >
  55. >This allows them to use the dot-on-a-line-by-iteself technique to
  56. >terminate the entitiy.
  57.  
  58. MIME and NNTP should never need to talk to each other.  MIME is a UA
  59. level format, NNTP is a message transfer agent protocol.  NNTP can use
  60. the dot-on-a-line-by-itself convention not because it is a 7-bit
  61. protocol (which it isn't -- although other message transfer protocols
  62. like SMTP are) but because it is a line-based protocol.  MIME is also
  63. mostly a line-based format, even if the content-transfer-encoding is
  64. 8bit -- it is only in binary mode that we get in trouble (since
  65. conversion from one kind of line terminator to another is dangerous
  66. for binary data).
  67.  
  68. >They also share assumptions about the content-type as
  69. >a separate issue. The client assumes the response to an
  70. >ARTICLE command is a message/rfc822 entity, while the
  71. >response to a BODY command is text/plain.
  72.  
  73. That's a nice way of putting it.
  74.  
  75. >[Long description of why you want to put the byte count in the MIME
  76. >headers omitted]
  77. >
  78. >It is somewhat intertwingled, but I still kinda like it.
  79.  
  80. And I still don't.  I have the feeling that it would be much easier to
  81. adapt HTTP to other (non-TCP) transport protocols if the size of an
  82. entity is given separately rather than computed from the entity itself
  83. (after all this nonsense is only necessary because TCP doesn't have a
  84. way to distinguish EOF from a broken connection).  As I understand it
  85. your main objection is that under my proposal you will have to
  86. construct the necessary headers in a buffer first.  I don't believe
  87. that this is that much of a hassle in today's computers -- it
  88. shouldn't be more than a couple of kilobytes even in extreme cases,
  89. which is peanuts even for a standard PC.
  90.  
  91. An issue on which I don't have a strong opinion is whether we should
  92. represent line separators as CRLF in the header -- anyone else?
  93.  
  94. Cheers,
  95.  
  96. --Guido van Rossum, CWI, Amsterdam <guido@cwi.nl>
  97. "The lawnmower.  Surely such a gadget could not have been generated
  98. independently in two separate areas."